package com.sup.goods.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sup.common.annotation.Excel;
import com.sup.common.core.domain.BaseEntity;

/**
 * 商品对象 goods_table
 * 
 * @author ruoyi
 * @date 2025-06-24
 */
public class GoodsTable extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    @Excel(name = "")
    private Long id;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String goodsProductName;

    /** 商品的供应商id */
    @Excel(name = "商品的供应商id")
    private Long goodsSupplierId;

    /** 商品的原产地 */
    @Excel(name = "商品的原产地")
    private String goodsOriginalProductionPlace;

    /** 商品的生产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商品的生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date goodsProductionDate;

    /** 商品的进货地（供应商id地点 */
    @Excel(name = "商品的进货地", readConverterExp = "商品的进货地（供应商id地点")
    private String goodsPurchasePlace;

    /** 进货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "进货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date goodsPurchaseDate;

    /** 商品保质期 */
    @Excel(name = "商品保质期")
    private String goodsShelfLife;

    /** 商品的进货单价价格 */
    @Excel(name = "商品的进货单价价格")
    private BigDecimal goodsPurchaseUnitPrice;

    /** 商品的出售单价价格（默认，可能有促销打折，批发... */
    @Excel(name = "商品的出售单价价格", readConverterExp = "商品的出售单价价格（默认，可能有促销打折，批发...")
    private BigDecimal goodsSellingUnitPrice;

    /** 商品数量（箱/斤/袋/...） */
    @Excel(name = "商品数量", readConverterExp = "箱=/斤/袋/...")
    private Long goodsQuantity;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date goodsCreateTime;

    /** 创建人员id */
    @Excel(name = "创建人员id")
    private Long goodsCreatorId;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date goodsUpdateTime;

    /** 修改人员id */
    @Excel(name = "修改人员id")
    private Long goodsUpdaterId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setGoodsProductName(String goodsProductName) 
    {
        this.goodsProductName = goodsProductName;
    }

    public String getGoodsProductName() 
    {
        return goodsProductName;
    }
    public void setGoodsSupplierId(Long goodsSupplierId) 
    {
        this.goodsSupplierId = goodsSupplierId;
    }

    public Long getGoodsSupplierId() 
    {
        return goodsSupplierId;
    }
    public void setGoodsOriginalProductionPlace(String goodsOriginalProductionPlace) 
    {
        this.goodsOriginalProductionPlace = goodsOriginalProductionPlace;
    }

    public String getGoodsOriginalProductionPlace() 
    {
        return goodsOriginalProductionPlace;
    }
    public void setGoodsProductionDate(Date goodsProductionDate) 
    {
        this.goodsProductionDate = goodsProductionDate;
    }

    public Date getGoodsProductionDate() 
    {
        return goodsProductionDate;
    }
    public void setGoodsPurchasePlace(String goodsPurchasePlace) 
    {
        this.goodsPurchasePlace = goodsPurchasePlace;
    }

    public String getGoodsPurchasePlace() 
    {
        return goodsPurchasePlace;
    }
    public void setGoodsPurchaseDate(Date goodsPurchaseDate) 
    {
        this.goodsPurchaseDate = goodsPurchaseDate;
    }

    public Date getGoodsPurchaseDate() 
    {
        return goodsPurchaseDate;
    }
    public void setGoodsShelfLife(String goodsShelfLife) 
    {
        this.goodsShelfLife = goodsShelfLife;
    }

    public String getGoodsShelfLife() 
    {
        return goodsShelfLife;
    }
    public void setGoodsPurchaseUnitPrice(BigDecimal goodsPurchaseUnitPrice) 
    {
        this.goodsPurchaseUnitPrice = goodsPurchaseUnitPrice;
    }

    public BigDecimal getGoodsPurchaseUnitPrice() 
    {
        return goodsPurchaseUnitPrice;
    }
    public void setGoodsSellingUnitPrice(BigDecimal goodsSellingUnitPrice) 
    {
        this.goodsSellingUnitPrice = goodsSellingUnitPrice;
    }

    public BigDecimal getGoodsSellingUnitPrice() 
    {
        return goodsSellingUnitPrice;
    }
    public void setGoodsQuantity(Long goodsQuantity) 
    {
        this.goodsQuantity = goodsQuantity;
    }

    public Long getGoodsQuantity() 
    {
        return goodsQuantity;
    }
    public void setGoodsCreateTime(Date goodsCreateTime) 
    {
        this.goodsCreateTime = goodsCreateTime;
    }

    public Date getGoodsCreateTime() 
    {
        return goodsCreateTime;
    }
    public void setGoodsCreatorId(Long goodsCreatorId) 
    {
        this.goodsCreatorId = goodsCreatorId;
    }

    public Long getGoodsCreatorId() 
    {
        return goodsCreatorId;
    }
    public void setGoodsUpdateTime(Date goodsUpdateTime) 
    {
        this.goodsUpdateTime = goodsUpdateTime;
    }

    public Date getGoodsUpdateTime() 
    {
        return goodsUpdateTime;
    }
    public void setGoodsUpdaterId(Long goodsUpdaterId) 
    {
        this.goodsUpdaterId = goodsUpdaterId;
    }

    public Long getGoodsUpdaterId() 
    {
        return goodsUpdaterId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("goodsProductName", getGoodsProductName())
            .append("goodsSupplierId", getGoodsSupplierId())
            .append("goodsOriginalProductionPlace", getGoodsOriginalProductionPlace())
            .append("goodsProductionDate", getGoodsProductionDate())
            .append("goodsPurchasePlace", getGoodsPurchasePlace())
            .append("goodsPurchaseDate", getGoodsPurchaseDate())
            .append("goodsShelfLife", getGoodsShelfLife())
            .append("goodsPurchaseUnitPrice", getGoodsPurchaseUnitPrice())
            .append("goodsSellingUnitPrice", getGoodsSellingUnitPrice())
            .append("goodsQuantity", getGoodsQuantity())
            .append("goodsCreateTime", getGoodsCreateTime())
            .append("goodsCreatorId", getGoodsCreatorId())
            .append("goodsUpdateTime", getGoodsUpdateTime())
            .append("goodsUpdaterId", getGoodsUpdaterId())
            .toString();
    }
}
